package Proyecto0.src;
import java.util.Map.Entry;
/** 
 * Implementa la interface Entry.
 * @param <K> representa al tipo de la clave (key) del par.
 * @param <V> representa al tipo del valor del par.
 */
public class Gate <K,V> implements Entry <K,V>
  {private K key;//Clave de la entrada.
   private V value;//Valor de la entrada.
   /**
    * Crea una entrada vacia    
    */
   public Gate()
     {key=null;
      value=null;
     }
   /**
    * Cra una entrada con una clave y valor dado.
    * @param k Clave de la entrada.
    * @param v Valor de la entrada.
    */
   public Gate(K k,V v)
   {key=k;
    value=v;
   }
   /**
    * Devuelve la clave almacenada en esta entrada.
    * @return la clave almacenada en esta entrada.
    */
   public K getKey()
   	 {return key;
   	 }
   /**
    * Devuelve el valor almacenada en esta entrada.
    * @return la clave almacenada en esta entrada.
	 */
   public V getValue()
   	 {return value;
   	 }
   /**
    * Establece la nueva clave de la entrada, retornando la clave vieja.
    * @param k es la nueva clave para la entrada.
    * @return la clave vieja de la entrada.
    */
   public K setKey(K k)
     {K temp = key;
      key = k;
      return temp;
     }
   /**
    * Establece el nuevo valor de la entrada, retornando el viejo valor.
    * @param v es el nuevo valor para la entrada.
    * @return el viejo valor de la entrada.
    */
   public V setValue(V v)
   	 {V temp = value;
   	  value = v;
   	  return temp;
   	 }
   /**
    * Devuelve una cadena con la clave y el valor de la entrada entre parentesis.
    * @return una cadena con la clave y el valor de la entrada entre parentesis.
    */
   public String toString()
   	 {return "("+ key +","+ value +")";
   	 }   
  }